#include <iostream>
#include <vector>
#include <stack>
#include <string>

struct Node {
	int left;
	int right;
};

/**
 * 括号匹配
 */
int main() {
	std::string line;
	std::cin >> line;

	std::vector<Node> nodes;
	std::stack<int> s;
	for (int i=0; i<line.size(); i++) {
		if (line[i] == '(') {
			s.push(i+1);
		}else {
			if (s.empty()) {
				std::cout << "No";
				return 0;
			}

			Node node = { s.top(), i + 1 };
			nodes.push_back(node);
			s.pop();
		}
	}

	if (!s.empty()) {
		std::cout << "No";
		return 0;
	}

	std::cout << "Yes\n";
	for (Node node : nodes) {
		std::cout << node.left << " " << node.right << "\n";
	}

	return 0;
}